package net.ocara.cpfj.server;

import net.ocara.cpfj.client.ValidatingService;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;

/**
 * The server side implementation of the RPC service.
 */
@SuppressWarnings("serial")
public class ValidatingServiceImpl extends RemoteServiceServlet implements
		ValidatingService {

	public String validateCPFJ(String cpfj) {
		if (cpfj.length() == 11
				&& CPF.validaCPF(cpfj)) {
			return "<br><b> CPF </b>" + cpfj + " <b>válido!</b>";
		} else if (cpfj.length() == 14
				&& CNPJ.validaCNPJ(cpfj)) {
			return "<br><b> CNPJ </b>" + cpfj + " <b>válido!</b>";
		} else {
			return "<br><b> CPF ou CNPJ </b>" + cpfj + " <b>inválido!</b>";
		}
	}
	
	public String genCPF() {
		return "<br><b> CPF: </b>" + CPF.geraCPF() + " <b>gerado!</b>";
	}
	
	public String genCNPJ() {
		return "<br><b> CNPJ: </b>" + CNPJ.geraCNPJ() + " <b>gerado!</b>";
	}
	
	public String sysInfoHelp() {
		String help = "<center><b>CPFJ: gera e valida " +
		 "números aleatórios de CPF e CNPJ</center></b> " +
		 " <ul> " +
		 "  <li>para validar: digite no " +
		 "campo indicado apenas os números do CPF ou CNPJ. " +
		 "N&atilde;o digite pontos, hífens ou barras.</li> " +
		 "  <li>para gerar " +
		 "números aleatórios de CPF ou CNPJ clique no " +
		 "botão específico.</li> " +
		 "</ul> " +
		 "<br> " +
		 "<i>É proibido qualquer uso ilegal do sistema.</i> " +
		 "<br> <br> " +
		 "Link: <a href='http://cpfj.ocara.net'>http://cpfj.ocara.net</a> " +
		 "<br> " +
		 "Contato: <a href='mailto:cpfj@ocara.net'>cpfj@ocara.net</a>";
		String serverInfo = getServletContext().getServerInfo();
		String userAgent = getThreadLocalRequest().getHeader("User-Agent");
		return help + "<br><br><i>Rodando: " + serverInfo
				+ "<br>Utilizando: " + userAgent + "</i>";
	}
}
